package com.cqeec.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 提供获取连接和释放资源的方法
 * 
 * @author 零起点
 * 
 * @date 2018年7月7日
 * 
 * Version V3.0
 * 
 */
public class JDBCUtils {
	private static String driver;
	private static String url;
	private static String userName;
	private static String password;
	/**
	 * 静态代码块 加载配置信息
	 */
	static {
		try {
			//1.通过当前类获取类加载器
			ClassLoader classLoader = JDBCUtils.class.getClassLoader();
			//通过类加载器的方法获取一个输入流
			InputStream is = classLoader.getResourceAsStream("db.properties");
			//创建一个properties对象
			Properties props = new Properties();
			//加载输入流
			props.load(is);
			//获取配置文件数据 赋值给变量
			driver = props.getProperty("mysql.driver");
			url = props.getProperty("mysql.url");
			userName = props.getProperty("mysql.username");
			password = props.getProperty("mysql.password");	
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取连接方法
	 * @return 
	 */
	public static Connection getConnection() {
		Connection conn = null;
		try {
			//注册驱动
			Class.forName(driver);
			//获取连接
			conn =  DriverManager.getConnection(url,userName,password);	
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return conn;
	}
	/**
	 * 释放资源
	 * @param conn
	 * @param pstml
	 * @param rs
	 */
	public static void release(Connection conn,PreparedStatement pstml,ResultSet rs) {
		try {
			if(rs!=null) {rs.close();}
			if(pstml!=null) {pstml.close();}
			if(conn != null) {conn.close();}
		}catch (SQLException e) {e.printStackTrace();}
	}
}
